home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / src890906.arc / IFACE.H < prev    next >
C/C++ Source or Header  |  1989-08-19  |  2KB  |  56 lines

  1. #ifndef    NULLIF
  2.  
  3. #include "global.h"
  4.  
  5. /* Interface control structure */
  6. struct iface {
  7.     struct iface *next;    /* Linked list pointer */
  8.     char *name;        /* Ascii string with interface name */
  9.     int (*ioctl) __ARGS((struct iface *,int,char **));
  10.                 /* Function to handle device control */
  11.     int (*send) __ARGS((struct mbuf *,struct iface *,int32,int,int,int,int));
  12.                 /* Routine to send an IP datagram */
  13.     int (*output) __ARGS((struct iface *,char *,char *,int16,struct mbuf *));
  14.                 /* Routine to send link packet */
  15.     int (*raw) __ARGS((struct iface *,struct mbuf *));
  16.                 /* Routine to call to send raw packet */
  17.     int (*stop) __ARGS((struct iface *));
  18.                 /* Routine to call before detaching */
  19.     int16 mtu;        /* Maximum transmission unit size */
  20.     int16 dev;        /* Subdevice number to pass to send */
  21.     int16 flags;        /* Configuration flags */
  22. #define    DATAGRAM_MODE    0    /* Send datagrams in raw link frames */
  23. #define    CONNECT_MODE    1    /* Send datagrams in connected mode */
  24.     int16 trace;        /* Trace flags */
  25. #define    IF_TRACE_OUT    0x01    /* Output packets */
  26. #define    IF_TRACE_IN    0x10    /* Packets to me except broadcast */
  27. #define    IF_TRACE_ASCII    0x100    /* Dump packets in ascii */
  28. #define    IF_TRACE_HEX    0x200    /* Dump packets in hex/ascii */
  29. #define    IF_TRACE_NOBC    0x1000    /* Suppress broadcasts */
  30.     char *hwaddr;        /* Device hardware address, if any */
  31.     struct iface *forw;    /* Forwarding interface for output, if rx only */
  32. };
  33. #define    NULLIF    (struct iface *)0
  34. extern struct iface *Ifaces;    /* Head of interface list */
  35.  
  36. /* Header put on front of each packet in input queue */
  37. struct phdr {
  38.     struct iface *iface;
  39.     unsigned short type;
  40. #define    TYPE_AX25    0
  41. #define    TYPE_ETHER    1
  42. #define    TYPE_IP        2
  43. #define TYPE_APPLETALK    3
  44. #define    TYPE_KISS    4
  45. #define    NLTYPE        5
  46. };
  47.  
  48. extern struct mbuf *Hopper;
  49.  
  50. /* In iface.c: */
  51. struct iface *if_lookup __ARGS((char *name));
  52.  
  53. #endif    /* NULLIF */
  54.  
  55.  
  56.